static unsigned buf_i, buf_n;
while (buf_n == 0 || new_packet) {
packet_read(buf);
+ new_packet = FALSE;
if (buf[1] <= delbin_os_packet_size - 2) {
buf_n = buf[1];
buf_i = 2;
warning(MYNAME ": device %s %s\n", p->product, p->firmware);
if (opt_long_notes) {
use_extended_notes = TRUE;
+ } else if (strstr(p->product, "PN-20")) {
+ use_extended_notes = p->firmware[0] > '1' ||
+ (p->firmware[0] == '1' && p->firmware[2] >= '6');
} else if (strstr(p->product, "PN-40")) {
- // Don't know if pre-2.5 PN-40 firmware or PN-20 can handle 0xb016 message
use_extended_notes = p->firmware[0] > '2' ||
(p->firmware[0] == '2' && p->firmware[2] >= '5');
}
static waypoint*
delbin_rd_position(posn_status* status)
{
- waypoint* wp = read_position();
- if (wp == NULL) {
- status->request_terminate = 1;
- }
- return wp;
+ return read_position();
}
ff_vecs_t delbin_vecs = {
fd_hidraw = fd_hiddev = -1;
if (fname && memcmp(fname, "hid:", 4) == 0) {
- const char* raw_name = fname + 4;
- const char* dev_name = strchr(raw_name, ',');
+ char* raw_name = xstrdup(fname + 4);
+ char* dev_name = strchr(raw_name, ',');
if (dev_name == NULL) {
- fatal(MYNAME ": missing hiddev\n");
+ fatal(MYNAME ": missing hiddev path\n");
}
+ *dev_name++ = 0;
fd_hidraw = open(raw_name, O_RDONLY);
if (fd_hidraw < 0) {
fatal(MYNAME ": %s: %s\n", raw_name, strerror(errno));
}
- dev_name++;
fd_hiddev = open(dev_name, O_WRONLY);
if (fd_hiddev < 0) {
fatal(MYNAME ": %s: %s\n", dev_name, strerror(errno));
}
+ xfree(raw_name);
} else {
dir = opendir("/dev");
}
<para>
- The 'delbin' module supports Delorme PN-20, PN-30, and PN-40 receivers.
+ The 'delbin' module supports DeLorme PN-20, PN-30, and PN-40 receivers.
<important>
<para>
Not all strains of Linux are supported. Fedora 7 is known not to work, for example.
<para>
Only the 'usb:' device is supported. If you're on Windows, do not attempt to
run this through the serial driver.
+</para>
<para>
+ On Linux, a name of the form 'hid:path-to-hidraw,path-to-hiddev' is also supported.
+ You will need to use this only if the HID device nodes on your system are not named
+ /dev/hidrawN and /dev/hiddevN or /dev/usb/hiddevN.
+</para>
<para>
This module implements the (undocumented) waypoint extensions introduced
</userinput>
</para>
</example>
-
-
-<para>GPSBabel supports the following <ulink url="http://www.magellangps.com">Magellan</ulink> receivers:
-<simplelist columns="2">
- <member>310</member>
- <member>315</member>
- <member>Map330</member>
- <member>SporTrak Map Color</member>
- <member>SporTrak Map</member>
- <member>SporTrak Map Pro</member>
- <member>SporTrak Map Topo</member>
- <member>Meridian (green or yellow)</member>
- <member>Meridian Gold</member>
- <member>Meridian Platinum</member>
- <member>Meridian Color</member>
- <member>Explorist 100 (with aftermarket cable)</member>
- <member>Explorist 200 (with aftermarket cable)</member>
- <member>Explorist 300 (with aftermarket cable)</member>
- <member>Explorist 210</member>
- <member>Explorist 300</member>
- <member>Explorist 400</member>
- <member>Explorist 500</member>
- <member>Explorist 600</member>
- <member>Explorist XL</member>
-</simplelist>
-</para>
-
-<para>
- This format is used for both the serial protocol used on the
- devices with serial ports such as Map330 and Meridian and for
- the files stored either in either the unit's internal memory
- (Explorist 210, Explorist 400, Explorist 500, Explorist 600,
- Explorist XL) or on removable memory.
-</para>
-<para>
- If you specify a serial port for the file (.e.g. "COM1", "/dev/ttyS0")
- to be read or written, GPSBabel will use serial protocol. Specifying
- a file, either on local filesystem or on a mounted flash card reader,
- will results in the file-based format being used.
-</para>